import {updateStorage} from '../tools'
import request from '../../utils/request'

let userInfo = localStorage.getItem('userInfo')
try{
    userInfo = JSON.parse(userInfo) || {}
}catch(err){
    userInfo = {}
}

export default {
    // 启用命名空间
    namespaced:true,
    state:{
        userInfo,
    },
    getters:{
        isLogin(state,getters,rootState,rootGetters){
            // state： 当前模块的state
            // getters: 当前模块的getters
            // rootState: 全局状态（包含所有模块的状态）
            // rootGetters: 全局getters（包含所有模块的getters）
            console.log('user->state,getters,rootState,rootGetters',state,getters,rootState,rootGetters)
            return !!state.userInfo.authorization
        }
    },
    mutations:{
        login(state,payload){
            state.userInfo = payload
            updateStorage('userInfo',payload)
        },
        logout(state){
            state.userInfo = {}
            localStorage.removeItem('userInfo')
        }
    },
    actions:{
        async login(context,payload){
            // context={state,getters,commit,dispatch}
            console.log('context',context);
            const {data} = await request.post('/login',payload)
            // this.$store.commit('login',data.data)
            context.commit('loginy',data.data)
            return data;
        }
    }
}